package ReferenceDemo;

import java.lang.ref.PhantomReference;
import java.lang.ref.ReferenceQueue;

/**
 * 作者  Administrator
 * 时间  2017/1/18 17:59
 * 文件  JAVAOOM
 * 描述  虚引用demo
 * 1、不管有无强引用指向PhantomReference的指示对象，get方法始终返回的结果都是null
 * 2、强引用对象被gc后，引用队列应该可以接收到的吧
 */
public class PhantomReferenceTest {
	public static void main(String[] args) {
		A a = new A();
		ReferenceQueue<A> rq = new ReferenceQueue<>();
		PhantomReference<A> prA = new PhantomReference<>(a, rq);
		System.out.println("prA.get():" + prA.get());
		a = null;
		System.gc();
		try {
			Thread.sleep(1);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}

		System.out.println("rq item:" + rq.poll());

	}
}
